#include <rtthread.h>
#include "base.h"

// 执行一次不重要的操作，注意不能出现暂停运行的情况
void ilde_hook (void) {
    static int counter = 0;

    // 也可以检测系统启动
    counter++; 
    if (counter >= 1000000) {
        counter = 0;
        led_toggle(LED2);  // 闪烁系统运行指示灯
    }
}

/* LED 任务：心跳指示 */
static void led_task(void *p)
{
    while (1)
    {
        led_toggle(LED0);
        rt_thread_mdelay(1000);         // 如果将这个注释掉，LED2将无法闪烁
    }
}

/* 日志任务：打印调试信息 */
static void log_task(void *p)
{
    while (1)
    {
        rt_kprintf("debug: system running...\n");
        rt_thread_mdelay(500);
    }
}

int main(void)
{
    hardware_init();
    rt_thread_idle_sethook(ilde_hook);

    /* 创建并启动 LED 任务 */
    rt_thread_t tid_led = rt_thread_create("led", led_task, RT_NULL, 1024, 10, 10);
    if (tid_led) rt_thread_startup(tid_led);

    /* 创建并启动日志任务 */
    rt_thread_t tid_log = rt_thread_create("log", log_task, RT_NULL, 1024, 20, 10);
    if (tid_log) rt_thread_startup(tid_log);

    return 0;
}
